﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidades;
using System.Data.OracleClient;
using System.Data;
using System.Configuration;

namespace Datos
{
    public class PresupuestoAD
    {

        

        public static List<Presupuesto> NGetPresupuestoByRutPacienteNoFinalizado(string Rut)
        {
            string sql = @"SELECT id_presupuesto,
                                  nombretratamiento
                             FROM presupuesto 
                            WHERE estado <> 'Finalizado'
                              AND rutpaciente = '" + Rut + "'";



            List<Presupuesto> list = new List<Presupuesto>();

            using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
            {

                OracleCommand command = new OracleCommand(sql, conn);

                conn.Open();

                OracleDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                      list.Add(LoadPresupuestoBuscarNoFinalizado(reader));
                }

                return list;
            }



        }

        public static List<Presupuesto> GetPresupuestoByRutPaciente(string Rut)
        {
            string sql = @"SELECT id_presupuesto,
                                  rutusuario,
                                  id_tratamiento,
                                  rutpaciente,
                                  estado,
                                  fecha,
                                  nombretratamiento,
                                  detalletratamiento,
                                  numerosesiones,
                                  valor
                             FROM presupuesto 
                            WHERE rutpaciente = '"+Rut+"'";

          
             
            List<Presupuesto> list = new List<Presupuesto>();

            using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
            {

                OracleCommand command = new OracleCommand(sql, conn);

                conn.Open();

                OracleDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    list.Add(LoadPresupuesto(reader));
                }
                
                return list;
            }


           
        }


        public static List<Presupuesto> GetTratamientosDePresupuestoByRutPaciente(string Rut)
        {
            string sql = @"SELECT id_presupuesto,
                                  rutusuario,
                                  id_tratamiento,
                                  rutpaciente,
                                  estado,
                                  fecha,
                                  nombretratamiento,
                                  detalletratamiento,
                                  numerosesiones,
                                  valor
                             FROM presupuesto 
                            WHERE rutpaciente = '" + Rut + "' and estado = 'Ejecucion'";



            List<Presupuesto> list = new List<Presupuesto>();

            using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
            {

                OracleCommand command = new OracleCommand(sql, conn);

                conn.Open();

                OracleDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    list.Add(LoadPresupuesto(reader));
                }

                return list;
            }



        }



        public static List<Presupuesto> NGetPresupuestoByRutPacienteActivoNoFinalizado(string Rut)
        {
            string sql = @"SELECT id_presupuesto,
                                  nombretratamiento
                             FROM presupuesto 
                            WHERE estado='Activo'
                              AND rutpaciente = '" + Rut + "'";



            List<Presupuesto> list = new List<Presupuesto>();

            using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
            {

                OracleCommand command = new OracleCommand(sql, conn);

                conn.Open();

                OracleDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    list.Add(LoadPresupuestoBuscarNoFinalizado(reader));
                }

                return list;
            }



        }

        public static List<Presupuesto> GetPresupuestoByRutPacienteActivo(string Rut)
       {
           string sql = @"SELECT id_presupuesto,
                                  rutusuario,
                                  id_tratamiento,
                                  rutpaciente,
                                  estado,
                                  fecha
                             FROM presupuesto 
                            WHERE estado='Activo'
                              AND rutpaciente = '" + Rut + "'";



           List<Presupuesto> list = new List<Presupuesto>();

           using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
           {

               OracleCommand command = new OracleCommand(sql, conn);

               conn.Open();

               OracleDataReader reader = command.ExecuteReader();

               while (reader.Read())
               {
                   list.Add(LoadPresupuesto(reader));
               }

               return list;
           }



       }



        public static List<Presupuesto> NGetPresupuestoByRutPacienteEjecucionNoFinalizado(string Rut)
        {
            string sql = @"SELECT id_presupuesto,
                                  nombretratamiento
                             FROM presupuesto 
                            WHERE estado='Ejecucion'
                              AND rutpaciente = '" + Rut + "'";



            List<Presupuesto> list = new List<Presupuesto>();

            using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
            {

                OracleCommand command = new OracleCommand(sql, conn);

                conn.Open();

                OracleDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    list.Add(LoadPresupuestoBuscarNoFinalizado(reader));
                }

                return list;
            }



        }

        public static List<Presupuesto> GetPresupuestoByRutPacienteEjecucion(string Rut)
       {
           string sql = @"SELECT id_presupuesto,
                                  rutusuario,
                                  id_tratamiento,
                                  rutpaciente,
                                  estado,
                                  fecha
                             FROM presupuesto 
                            WHERE estado='Ejecucion'
                              AND rutpaciente = '" + Rut + "'";



           List<Presupuesto> list = new List<Presupuesto>();

           using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
           {

               OracleCommand command = new OracleCommand(sql, conn);

               conn.Open();

               OracleDataReader reader = command.ExecuteReader();

               while (reader.Read())
               {
                   list.Add(LoadPresupuesto(reader));
               }

               return list;
           }



       }



        public static List<Presupuesto> NGetPresupuestoByRutPacienteNombreTratamientoNoFinalizado(string Rut, string nombre)
        {


            string sql = @"SELECT id_presupuesto, 
                                  nombretratamiento                                   
                             FROM presupuesto 
                            WHERE nombretratamiento LIKE '%" + nombre + "%' AND rutpaciente = '" + Rut + "'";


            List<Presupuesto> list = new List<Presupuesto>();

            using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
            {

                OracleCommand command = new OracleCommand(sql, conn);

                conn.Open();

                OracleDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    list.Add(LoadPresupuestoBuscarNoFinalizado(reader));
                }

                return list;
            }
        }
       
        public static List<Presupuesto> GetPresupuestoByRutPacienteNombreTratamiento(string Rut, string nombre)
       {


           string sql = @"SELECT presupuesto.id_presupuesto, tratamiento.nombre_tratamiento, presupuesto.id_tratamiento 
                            FROM tratamiento, presupuesto WHERE nombre_tratamiento LIKE '%" + nombre + "%' AND presupuesto.id_tratamiento = tratamiento.id_tratamiento AND presupuesto.rutpaciente = '" + Rut +"'";
                           
       
           List<Presupuesto> list = new List<Presupuesto>();

           using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
           {

               OracleCommand command = new OracleCommand(sql, conn);

               conn.Open();

               OracleDataReader reader = command.ExecuteReader();

               while (reader.Read())
               {
                   list.Add(LoadPresupuestoBuscar(reader));
               }

               return list;
           }
       }



        public static List<Presupuesto> NGetPresupuestoByRutPacienteNombreTratamientoEjecucionNoFinalizado(string Rut, string nombre)
        {


            string sql = @"SELECT id_presupuesto, 
                                  nombretratamiento
                             FROM presupuesto 
                            WHERE nombretratamiento LIKE '%" + nombre + "%'AND rutpaciente='" + Rut + "' AND estado = 'Ejecucion'";

            List<Presupuesto> list = new List<Presupuesto>();

            using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
            {

                OracleCommand command = new OracleCommand(sql, conn);

                conn.Open();

                OracleDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    list.Add(LoadPresupuestoBuscarNoFinalizado(reader));
                }

                return list;
            }
        }

        public static List<Presupuesto> GetPresupuestoByRutPacienteNombreTratamientoEjecucion(string Rut, string nombre)
       {


           string sql = @"SELECT presupuesto.id_presupuesto, tratamiento.nombre_tratamiento, presupuesto.id_tratamiento  
                            FROM tratamiento, presupuesto WHERE nombre_tratamiento LIKE '%" + nombre + "%'AND presupuesto.id_tratamiento=tratamiento.id_tratamiento AND presupuesto.rutpaciente='" + Rut + "' AND presupuesto.estado = 'Ejecucion'";

             List<Presupuesto> list = new List<Presupuesto>();

           using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
           {

               OracleCommand command = new OracleCommand(sql, conn);

               conn.Open();

               OracleDataReader reader = command.ExecuteReader();

               while (reader.Read())
               {
                   list.Add(LoadPresupuestoBuscar(reader));
               }

               return list;
           }
       }



        public static List<Presupuesto> NGetPresupuestoByRutPacienteNombreTratamientoActivoNoFinalizado(string Rut, string nombre)
        {


            string sql = @"SELECT id_presupuesto, 
                                  nombretratamiento
                             FROM presupuesto 
                            WHERE nombretratamiento LIKE '%" + nombre + "%'AND rutpaciente='" + Rut + "' AND estado = 'Activo'";

            List<Presupuesto> list = new List<Presupuesto>();

            using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
            {

                OracleCommand command = new OracleCommand(sql, conn);

                conn.Open();

                OracleDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    list.Add(LoadPresupuestoBuscarNoFinalizado(reader));
                }

                return list;
            }
        }

        public static List<Presupuesto> GetPresupuestoByRutPacienteNombreTratamientoActivo(string Rut, string nombre)
       {


           string sql = @"SELECT presupuesto.id_presupuesto, tratamiento.nombre_tratamiento, presupuesto.id_tratamiento  
                            FROM tratamiento, presupuesto WHERE nombre_tratamiento LIKE '%" + nombre + "%'AND presupuesto.id_tratamiento=tratamiento.id_tratamiento AND presupuesto.rutpaciente='" + Rut + "' AND presupuesto.estado = 'Activo'";

              List<Presupuesto> list = new List<Presupuesto>();

           using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
           {

               OracleCommand command = new OracleCommand(sql, conn);

               conn.Open();

               OracleDataReader reader = command.ExecuteReader();

               while (reader.Read())
               {
                   list.Add(LoadPresupuestoBuscar(reader));
               }

               return list;
           }
       }



       public static bool PreupuestoByRutIdTratamiento(string rut,int id)
       {
           string sql = @"select	 id_presupuesto
	                        from   	 presupuesto 
	                        where    id_tratamiento = " + id + " and rutpaciente = '"+rut+"'";





           OracleConnection Oraclecon = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija");
           Oraclecon.Open();
           OracleCommand myCMD = new OracleCommand();
           myCMD.Connection = Oraclecon;
           myCMD.CommandText = sql;
           myCMD.CommandType = CommandType.Text;




           int count = Convert.ToInt32(myCMD.ExecuteScalar());

           if (count == 0)
               return false;
           else
               return true;
       }

       public static Presupuesto GetPresupuestoById(int ID)
       {
           string sql = @"SELECT id_presupuesto,
                                 rutusuario,
                                 id_tratamiento,
                                 rutpaciente,
                                 estado,
                                 fecha,
                                 nombretratamiento,
                                 detalletratamiento,    
                                 numerosesiones,
                                 valor
                            FROM presupuesto
                           WHERE id_presupuesto = "+ID;

           Presupuesto presupuesto = null;


           OracleConnection Oraclecon = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija");
           Oraclecon.Open();
           OracleCommand myCMD = new OracleCommand();
           myCMD.Connection = Oraclecon;
           myCMD.CommandText = sql;
           myCMD.CommandType = CommandType.Text;

           OracleDataReader reader = myCMD.ExecuteReader();


           if (reader.Read())
           {
               presupuesto = LoadPresupuesto(reader);
           }

           return presupuesto;
       }


       public static int SesionAcutalPresupuesto(int ID)
       {




           string sql = @"select max(numerosesion) as kkk
                            from pago
                           where id_presupuesto="+ID;



           int sesion = 0;


           OracleConnection Oraclecon = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija");
           Oraclecon.Open();
           OracleCommand myCMD = new OracleCommand();
           myCMD.Connection = Oraclecon;
           myCMD.CommandText = sql;
           myCMD.CommandType = CommandType.Text;

           OracleDataReader reader = myCMD.ExecuteReader();


           if (reader.Read())
           {
               if (reader["kkk"] != DBNull.Value)
                   sesion = Convert.ToInt32(reader["kkk"]);
           }

           return sesion;

       }



       private static Presupuesto LoadPresupuesto(IDataReader reader)
        {
            Presupuesto presupuesto = new Presupuesto();
        

            presupuesto.ID_Presupuesto = Convert.ToInt32(reader["id_presupuesto"]);
            presupuesto.usuario = UsuarioAD.GetByRut(Convert.ToString(reader["rutusuario"]));
            presupuesto.tratamiento = TratamientoAD.GetByID(Convert.ToInt32(reader["id_tratamiento"]));
            presupuesto.paciente = PacienteAD.GetByRut(Convert.ToString(reader["rutpaciente"]));
            presupuesto.estado = Convert.ToString(reader["estado"]);
            presupuesto.fecha = Convert.ToDateTime(reader["fecha"]).ToShortDateString();
            if (reader["nombretratamiento"] != DBNull.Value)
            {
                presupuesto.nombretratamiento = Convert.ToString(reader["nombretratamiento"]);
            }
            if (reader["detalletratamiento"] != DBNull.Value)
            {
                presupuesto.detalletratamiento = Convert.ToString(reader["detalletratamiento"]);
            }
            if (reader["numerosesiones"] != DBNull.Value)
            {
                presupuesto.numerosesiones = Convert.ToInt32(reader["numerosesiones"]);
            }
            if (reader["valor"] != DBNull.Value)
            {
                presupuesto.valor = Convert.ToInt32(reader["valor"]);
            }

          

            return presupuesto;
        }
     
       private static Presupuesto LoadPresupuestoBuscar(IDataReader reader)
       {
           Presupuesto presupuesto = new Presupuesto();


           presupuesto.ID_Presupuesto = Convert.ToInt32(reader["id_presupuesto"]);
           //presupuesto.usuario = UsuarioAD.GetByRut(Convert.ToString(reader["rutusuario"]));
           presupuesto.tratamiento = TratamientoAD.GetByID(Convert.ToInt32(reader["id_tratamiento"]));
          // presupuesto.paciente = PacienteAD.GetByRut(Convert.ToString(reader["rutpaciente"]));
         //  presupuesto.estado = Convert.ToString(reader["estado"]);
         //  presupuesto.fecha = Convert.ToString(reader["fecha"]);


           return presupuesto;
       }

       private static Presupuesto LoadPresupuestoBuscarNoFinalizado(IDataReader reader)
       {
           Presupuesto presupuesto = new Presupuesto();


           presupuesto.ID_Presupuesto = Convert.ToInt32(reader["id_presupuesto"]);
           //presupuesto.usuario = UsuarioAD.GetByRut(Convert.ToString(reader["rutusuario"]));

           if (reader["nombretratamiento"] != DBNull.Value)
           {
               presupuesto.nombretratamiento = Convert.ToString(reader["nombretratamiento"]);
           }

           // presupuesto.paciente = PacienteAD.GetByRut(Convert.ToString(reader["rutpaciente"]));
           //  presupuesto.estado = Convert.ToString(reader["estado"]);
           //  presupuesto.fecha = Convert.ToString(reader["fecha"]);


           return presupuesto;

       }

       public static int NuevoPresupuesto(Presupuesto presupuesto)
       {
           OracleConnection oraConn = new OracleConnection();
           int k = 0;
           string connString = "Server=XE;Uid=juan;Pwd=lagartija";
           if (oraConn.State != ConnectionState.Open)
           {
               try
               {
                   oraConn.ConnectionString = connString;

                   oraConn.Open();

                   Console.WriteLine(oraConn.ConnectionString, "Successful Connection");
               }
               catch (Exception ex)
               {
                   Console.WriteLine(ex.Message, "Exception Caught");
               }
           }

           if (oraConn.State == ConnectionState.Open)
           {
               string sqlInsert = "insert into presupuesto ";
               sqlInsert += "values (sequence_presupuesto.nextval, :p_rutusuario, :p_id_tratamiento, :p_rutpaciente, :p_estado, :P_fecha, :p_nombretratamiento, :p_detalletratamiento, :p_numerosesiones, :p_valor)";

               OracleCommand cmdInsert = new OracleCommand();
               cmdInsert.CommandText = sqlInsert;
               cmdInsert.Connection = oraConn;

               OracleParameter pRutUsuario = new OracleParameter();
               pRutUsuario.Value = presupuesto.usuario.RutUsuario;
               pRutUsuario.ParameterName = "p_rutusuario";

               OracleParameter pIdTratamiento = new OracleParameter();
               pIdTratamiento.DbType = DbType.Int32;
               pIdTratamiento.Value = Convert.ToInt32(presupuesto.tratamiento.ID_Tratamiento);
               pIdTratamiento.ParameterName = "p_id_tratamiento";

               OracleParameter pRutPaciente = new OracleParameter();
               pRutPaciente.Value = presupuesto.paciente.rut;
               pRutPaciente.ParameterName = "p_rutpaciente";

               OracleParameter pEstado = new OracleParameter();
               pEstado.Value = presupuesto.estado;
               pEstado.ParameterName = "p_estado";

               OracleParameter pFecha = new OracleParameter();
               pFecha.Value = Convert.ToDateTime(presupuesto.fecha).ToShortDateString();
               pFecha.ParameterName = "p_fecha";

               OracleParameter pNombreTratamiento = new OracleParameter();
               pNombreTratamiento.Value = presupuesto.tratamiento.Nombre_Tratamientoo;
               pNombreTratamiento.ParameterName = "p_nombretratamiento";

               OracleParameter pDetalleTratamiento = new OracleParameter();
               pDetalleTratamiento.Value = presupuesto.tratamiento.Detalle;
               pDetalleTratamiento.ParameterName = "p_detalletratamiento";

               OracleParameter pNumeroSesiones = new OracleParameter();
               pNumeroSesiones.DbType = DbType.Int32;
               pNumeroSesiones.Value = presupuesto.tratamiento.NumeroSesiones;
               pNumeroSesiones.ParameterName = "p_numerosesiones";

               OracleParameter pValor = new OracleParameter();
               pValor.DbType = DbType.Int32;
               pValor.Value = presupuesto.tratamiento.valor;
               pValor.ParameterName = "p_valor";





               cmdInsert.Parameters.Add(pRutUsuario);
               cmdInsert.Parameters.Add(pIdTratamiento);
               cmdInsert.Parameters.Add(pRutPaciente);
               cmdInsert.Parameters.Add(pEstado);
               cmdInsert.Parameters.Add(pFecha);
               cmdInsert.Parameters.Add(pNombreTratamiento);
               cmdInsert.Parameters.Add(pDetalleTratamiento);
               cmdInsert.Parameters.Add(pNumeroSesiones);
               cmdInsert.Parameters.Add(pValor);




               k = cmdInsert.ExecuteNonQuery();
               cmdInsert.Dispose();







           } return k;
       }

       public static int UltimoPresupuestoInsertado()
       {
           string sql = @"select id_presupuesto 
from presupuesto
order by id_presupuesto desc
";





           OracleConnection Oraclecon = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija");
           Oraclecon.Open();
           OracleCommand myCMD = new OracleCommand();
           myCMD.Connection = Oraclecon;
           myCMD.CommandText = sql;
           myCMD.CommandType = CommandType.Text;


           

           int id = Convert.ToInt32(myCMD.ExecuteScalar());

           return id;
       }

       //modificar estado presupuesto

       public static string EstadoPresupuesto(int ID)
       {
           string sql = @"SELECT estado
                            FROM presupuesto
                           WHERE id_presupuesto = " + ID;

           string estado = "";


           OracleConnection Oraclecon = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija");
           Oraclecon.Open();
           OracleCommand myCMD = new OracleCommand();
           myCMD.Connection = Oraclecon;
           myCMD.CommandText = sql;
           myCMD.CommandType = CommandType.Text;

           OracleDataReader reader = myCMD.ExecuteReader();


           if (reader.Read())
           {
               if(reader["estado"] != DBNull.Value)
               estado = Convert.ToString(reader["estado"]);
           }

           return estado;
       }

       public static int EjecutarPresupuesto(int idPresupuesto)
       {
           OracleConnection oraConn = new OracleConnection();
           int k = 0;
           string connString = "Server=XE;Uid=juan;Pwd=lagartija";
           if (oraConn.State != ConnectionState.Open)
           {
               try
               {
                   oraConn.ConnectionString = connString;

                   oraConn.Open();

                   Console.WriteLine(oraConn.ConnectionString, "Successful Connection");
               }
               catch (Exception ex)
               {
                   Console.WriteLine(ex.Message, "Exception Caught");
               }
           }

           if (oraConn.State == ConnectionState.Open)
           {



               string sqlUpdate = "update presupuesto ";
               sqlUpdate += "set estado = 'Ejecucion' ";
               sqlUpdate += "where id_presupuesto = :p_id_presupuesto";

               OracleCommand cmdUpdate = new OracleCommand();
               cmdUpdate.CommandText = sqlUpdate;
               cmdUpdate.Connection = oraConn;

              
               OracleParameter pIdPresupuesto = new OracleParameter();
               pIdPresupuesto.DbType = DbType.Int32;
               pIdPresupuesto.Value = Convert.ToInt32(idPresupuesto);
               pIdPresupuesto.ParameterName = "p_id_presupuesto";





               cmdUpdate.Parameters.Add(pIdPresupuesto);




               k = cmdUpdate.ExecuteNonQuery();

               cmdUpdate.Dispose();

               return k;
           }
           return k;

       }
       public static int FinalizarPresupuesto(int idPresupuesto)
       {
           OracleConnection oraConn = new OracleConnection();
           int k = 0;
           string connString = "Server=XE;Uid=juan;Pwd=lagartija";
           if (oraConn.State != ConnectionState.Open)
           {
               try
               {
                   oraConn.ConnectionString = connString;

                   oraConn.Open();

                   Console.WriteLine(oraConn.ConnectionString, "Successful Connection");
               }
               catch (Exception ex)
               {
                   Console.WriteLine(ex.Message, "Exception Caught");
               }
           }

           if (oraConn.State == ConnectionState.Open)
           {



               string sqlUpdate = "update presupuesto ";
               sqlUpdate += "set estado = 'Finalizado' ";
               sqlUpdate += "where id_presupuesto = :p_id_presupuesto";

               OracleCommand cmdUpdate = new OracleCommand();
               cmdUpdate.CommandText = sqlUpdate;
               cmdUpdate.Connection = oraConn;


               OracleParameter pIdPresupuesto = new OracleParameter();
               pIdPresupuesto.DbType = DbType.Int32;
               pIdPresupuesto.Value = Convert.ToInt32(idPresupuesto);
               pIdPresupuesto.ParameterName = "p_id_presupuesto";





               cmdUpdate.Parameters.Add(pIdPresupuesto);




               k = cmdUpdate.ExecuteNonQuery();

               cmdUpdate.Dispose();

               return k;
           }
           return k;

       }



       public static DataTable Estados()
       {
           string sql = @"select estado, count(nombretratamiento)as cantidad
                            from presupuesto
                        GROUP BY estado";





           using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
           {
               OracleDataAdapter adapter = new OracleDataAdapter(sql, conn);
               DataTable set = new DataTable("presupuesto");

               adapter.Fill(set);


               return set;
           }
       }
       public static DataTable Estadisticas(string estado)
       {
           string sql = @"SELECT nombretratamiento as nombre, COUNT(valor)as cantidad
                            FROM presupuesto
                           WHERE estado='" + estado + "' GROUP BY nombretratamiento";





           using (OracleConnection conn = new OracleConnection("Server=XE;Uid=juan;Pwd=lagartija"))
           {
               OracleDataAdapter adapter = new OracleDataAdapter(sql, conn);
               DataTable set = new DataTable("presupuesto");

               adapter.Fill(set);


               return set;
           }
       }

    }
}
